﻿using System;
using System.Collections;
using System.Linq;
using System.Text;
using CRUD.InterfaceDAO;
using CapaNegocios;
using GestionadorBaseDatos;
using CapaGestion.Spring;
namespace CapaGestion
{
    /// <summary>
    /// Clase encargada de gestionar el uso de los participantes
    /// </summary>
    public class GestionarParticipante : IGestionParticipante
    {
        private IDaoParticipante daoParticipante;

        private IDaoProporcion daoProporcion;

        private IDaoCategoria daoCategoria;

        /// <summary>
        /// metodo apra buscar ina lista de participantes dada la categoria
        /// </summary>
        /// <param name="idcategoria">id que representa la categoria a buscar</param>
        /// <returns>lista de participantes de una categoria</returns>
        public IList GetByCategoria(int idcategoria)
        {
            return daoParticipante.GetByCategoria(idcategoria);
        }

        /// <summary>
        /// Metodo trae un participante dado su id
        /// </summary>
        /// <param name="part">objeto con el id del participante a buscar</param>
        /// <returns>Datos participante</returns>
        public Participante GetById(Participante part)
        {
            return daoParticipante.GetById(part);
        }

        /// <summary>
        /// sobrecarga del metodo anterior pero esta vez con el int que representa el id del participante
        /// </summary>
        /// <param name="idParticipante">id del participante a buscar</param>
        /// <returns>objeto participante</returns>
        public Participante GetById(int idParticipante)
        {
            return daoParticipante.GetById(idParticipante);
        }

        /// <summary>
        /// Metodo para buscar todos los participantes que hay
        /// </summary>
        /// <returns>lista con todos los participantes</returns>
        public IList GetAll()
        {
            return daoParticipante.GetAll();
        }

        /// <summary>
        /// metodo para buscar todas las categorias que hay
        /// </summary>
        /// <returns>lista con las categorias del sistema</returns>
        public IList GetCategorias()
        {
            return daoCategoria.GetAll();
        }

        /// <summary>
        /// metodo para insertar un nuevo participante al sistema
        /// </summary>
        /// <param name="p">Participante a ingresar</param>
        public void Insert(Participante p)
        {
            daoParticipante.Insert(p);
        }
    }
}